﻿namespace EasyToolkit.BindingTemplates.Context
{
    using System;
    using System.Collections.Generic;
    using EasyToolkit.BindingTemplates.SortAndFilter;
    using EasyToolkit.BindingTemplates.Views;
    using EasyToolkit.BindingTemplates.Definitions;

    public interface IBindingContext : IDisposable
    {
        ITemplateDefinition TemplateDefinition { get; }
        ISortAndFilter SortAndFilter { get; }
        
        IBindingContextElement Parent { get; }

        List<IBindingContextElement> ElementsToRender { get; }
        IEnumerable<IBindingContextElement> Elements { get; }
        object DataSource { get; }

        IBindingContext Header { get; }
        IBindingContext Footer { get; }
    }
}
